Method and apparatus for automatically managing capabilities in a virtual printer group

ABSTRACT

A method for dynamically managing printers comprises a mechanism for printing from a network of printers that belong to a virtual printer group to meet the user&#39;s request for printing. The invention does this by requesting an options and capabilities file from each printer and then generating a virtual printer group, such that when a user wants to print a file, the invention looks for the best suited printer for the user and sends a file to that printer for printing. The invention has the capability to keep track of each printer&#39;s printing capabilities dynamically and to communicate to the user about the status of printing and printer location, and of informing a system administrator for manual intervention should the need arise.

TECHNICAL FIELD

[0001] The invention relates to a software management of workflow as it relates to printing from a variety of different printers with differing capabilities that are not necessarily situated at the users workspace.

DESCRIPTION OF PRIOR ART

[0002] In a network system, when a user issues a print job on his computer, a print server managing a plurality of printers selects a printer for executing the print job in accordance with a particular print attribute or a printer's capability. In prior art systems, there are difficulties relating to the printer capabilities and how they are handled. For example, printers that are networked to form one virtual printer group usually have similar capabilities but may be situated at different locations. Printers having different capabilities and situated at different locations are usually not made a part of the same virtual print group.

[0003] In prior art systems, managing of printers with similar capabilities at different locations is not difficult for the user who is printing a document at a given time. However, a printer at one location may have such problems as paper jamming, toner needing replacement, paper needing loading, and similar servicing. A user is often tied to the proper functioning of a particular printer that his computer is networked to use. The user in prior art has to know before hand the capabilities and/or location, of the printer he is trying to print his job on. If that particular printer has problems, his time is wasted looking for the paper jam, replacing the toner, loading the paper, or looking for an administrator to fix the problem. The problem is worsened if the printers are situated at different locations of a big building. If the printer is not working, many jobs are put on hold until the printer is fixed. In such situations, previously submitted print jobs are lost and the user is left with the only choice of reprinting his job after he finds the printer is again enabled. The user is usually informed by the administrator via electronic mail about the lost jobs due to printer failure without indication of the nature of the job lost.

[0004] In some other prior art systems, each printer is assigned a printer capabilities file, also called job ticketing or Postscript Printer Definition (PPD), which specifies each printer's capability. A PPD is specific to a certain printer. For example, a printer has a stacker, or handles 11 in.×17 in. paper, such capability is identified in its PPD.

[0005] Having a PPD file specific to a printer is not of use to a user who wants to submit his job with a request for certain printing options but does not want to worry about where the printer is located, if the printer he wants to use is working, if it has enough toner, or if the paper is jammed in that particular printer.

[0006] What is missing in the prior art, is a method for dynamically managing a user's workflow for printing in a way that takes advantage of the printer capabilities of a number of different printers and that informs the user of the status of his printing and location of the printer where he could pick up his job.

SUMMARY

[0007] The invention relates to software implemented management of a workflow as it relates to printing at various printers that are not necessarily situated proximate to the user's workspace. The printers are networked to form a virtual printer group, such that the user has only to put forth a request for printing.

[0008] The invention provides a mechanism that meets the user's request by matching printing options requested by the user to the options available on the automatic virtual printer group. The virtual printer group can be managed from an internal database. The internal database contains each printer's capabilities in a file. The database can be individually populated via a query over the network by the software. In turn, the virtual printer group capabilities can be automatically on the fly updated by the software, which looks at both the internal database, or the printers response to various queries on capabilities and status. The mechanism, while satisfying the user's request for printing, dynamically keeps track of each printer's printing capabilities and saves the status into the internal database.

[0009] A key aspect of the invention is that a mechanism is provided that can automatically summarize and display to the user all of the capabilities of a given virtual printer group.

[0010] In one of its embodiments, the invention provides a feature to inform the user about the status of the print job. The invention also includes a feature that informs a system administrator should a particular printer require manual intervention. If a printer is not able to reply about it's printing options and capabilities, or if the printer capabilities are not matched to the capabilities already stored in the internal database, then printing is administered by the software administrator after a prompt from the invention to the system administrator for manually uploading the printer capabilities file. The administrator is given the choice to use a default capabilities file from the software database.

BRIEF DESCRIPTION OF DRAWINGS

[0011]FIG. 1 is an illustration of printing apparatus for dynamic printing according to the invention;

[0012]FIG. 2 is a flow diagram showing the steps involved in dynamic printing when a user sends a request for printing to a virtual printer group according to the invention; and

[0013]FIG. 3 is an illustration of a super print capabilities file for a virtual printer group invoked by the invention to meet user's request for printing.

DETAILED DESCRIPTION

[0014] The invention provides a solution to the workflow problems experienced by users when printing documents on printers that have unique features and unique limitations. Traditionally, printers all have different capabilities and feature sets available. These are features that include, for example, finishing options, color rendering, color intent options, media size, and tray selection. The problem comes when all the printers are grouped into one virtual printer group for access by the user or by another software program. This is so because when different printers having different capabilities are grouped together, the individual capabilities of the printer's lose accessibility, e.g. by traditional methods, such as user selection, because they have very different features and yet are put together into one group. Thus, the group comprises a superset of features that are not user accessible.

[0015] The solution relates to software for managing the workflow as printing is done from various printers at various locations besides the user's location. The printers in the current embodiment of the invention are networked to form a virtual printer group, which is identified in a file that is stored in an internal database. In such embodiment, a user makes a request for printing to a virtual printer group. The virtual printer group is formed from a network of printers that is identified in an internal database. The invention keeps track of each printer's printing capabilities and communicates to the user about the status of printing and printer location, while informing a system administrator if manual intervention is needed.

[0016] The virtual printer group forms a search engine for the user's request for printing. FIG. 1 is an illustration of the printing apparatus according to a presently preferred embodiment of the invention. The printing apparatus comprises a job accessing module that accesses a multiplicity of printers 60, 70, 80 and 90 to build a printer capabilities file. The invention includes a mechanism that dynamically accesses each printer's printer capabilities file. The printers 60, 70, 80 and 90 shown in FIG. 1 form part of a virtual printer group such that when a multiplicity of users, such as Client 1 10, Client 2 20, Client 3 30, or Client N 40 send their requests for printing, they send their request to the virtual printer group 50 with their printing options to enable printing their documents, such as Document 1 100, Document 2 110, Document 3 120, or Document N 130, uniquely.

[0017] When an administrator sets up or modifies a printing group, he only has to put forth the printer names or addresses on the network. The invention includes a module (FIG. 2) that talks to the printers to find out what options and capabilities they have. The language of this discussion is currently a proprietary software protocol. For printers that do not use the protocol, the module looks up the capabilities of that model of printer via the web or internal database. The system accesses the virtual printer group for printer capabilities [S1]. The system then merges [S2] the printer capabilities to create a super print capabilities file for the virtual printer group.

[0018]FIG. 2 is a flow diagram of steps involved in printing when a user sends a request for printing [S3] to the virtual printer group 50 (FIG. 1) with a set of print options. The system then takes in the print command [S4] and matches [S5] the user's print options to the super capabilities file of the virtual printer group. The system informs the user about the completion of the job [S6] once the job is completed.

[0019] The printer capabilities are generally in a format referred to as a Printer Postscript document (or PPD) but the invention is not limited to PPDs alone. Other formats for which the invention applies equally are, for example, Job Definition Format (or JDF) and Printer Job Language (PJL). The protocol for communication between the software and the printers is not limited to EFI Harmony but could be any suitable protocol, such as SNMP (Simple Network Management Protocol), IPP, or JDF (Job Definition Format).

[0020] The internal database stores each and every printer capabilities file once the printers are all networked to the user's computer. The system, while satisfying the user's request for printing, keeps track of each printer's printing capabilities and saves the status of each printer into the internal database.

[0021]FIG. 3 is an illustration of a super print capabilities file for a virtual printer group. The file is invoked by the system to meet client's request for printing. Some of these capabilities include, for example, options for color rendering, staples or no staples, split sheet capability, option for bypass tray to put cards, cover inserter, color brightness, page range for printing, page order being forward or reverse, lines per inch in the document being a range from 300 to 1800 and more specifically 300, 600, 1200 and 1800 lines per inch, job fonts, duplex option for top to top printing vs. top to bottom printing, glossy adjust and gradation smoothing for quality of printing, ink separation, screening parameters for quality of printing, color matching, folding, binding, collating, booklet making, slip sheet, drilling, and trimming for job finishing. These options constitute broad capabilities for printing such as: job layout, job definition, job quality, job content, job description, job color, job imposition and job finishing. The invention makes all of these capabilities available to every user of the virtual printer group, even though no one printer in the group alone possesses all of these capabilities. It will be appreciated that the user may have to select among the capabilities that are available, but that they are not all available at the same time, although the user may select among all of such capabilities at the same time.

[0022] In one embodiment of the invention, the system informs the user about the status of the print job. The system also informs a system administrator if a particular printer requires manual intervention. If a printer is not able to reply about it's printing options and capabilities, or if the printer capabilities are not matched to the capabilities already stored in the internal database, then the print job is administered by the system administrator after a prompt is provided from the system to the system administrator alerting the system administrator that he must manually upload the printer capabilities file. The system administrator is given the choice of using a default capabilities file from the software database.

[0023] Often a printer's capabilities file may say that it is capable having a certain feature, like a stapler, but the stapler may be disconnected or broken. The software should optionally mask or gray features that are normally available but currently out of service, giving the user a method to also automatically notify the service person.

[0024] In the future, printers may have a sensor which automatically detects paper type and amount, i.e. via a barcode reader. The invention can also report that information to the user.

[0025] Although the invention has been described in detail with reference to particular preferred embodiments, persons possessing ordinary skill in the art to which this invention pertains will appreciate that various modifications and enhancements may be made without departing from the spirit and scope of the claims that follow. 

1. A software implemented method for dynamic management of a work flow in a system for printing documents, comprising: accessing a multiplicity of printers for a printer capabilities file, describing capabilities and/or status that is unique to each printer, said printers being part of a virtual printer group; merging said printer capabilities to create a super print capabilities file; said client sending a print command to said virtual printer group with a set of printing options; said software matching said print options from said client to said super print capabilities file of said printers in said virtual printer group; and said software executing said print command on one or more appropriate printers.
 2. A software implemented method as claimed in claim 1, wherein said accessing a multiplicity of printers for printer capabilities file comprises invoking a printing protocol.
 3. A software implemented method as claimed in claim 1, wherein said accessing a multiplicity of printers for printer capabilities file comprises obtaining a Printer Postscript Definition file.
 4. A software implemented method as claimed in claim 1, wherein said accessing a multiplicity of printers for printer capabilities file comprises obtaining a list of printer options.
 5. A software implemented method as claimed in claim 3, wherein said accessing a multiplicity of printers for printer capabilities file comprises obtaining a Job Definition File.
 6. A software implemented method as claimed in claim 3, wherein said accessing a multiplicity of printers for printer capabilities file comprises obtaining a Printer Job Language File.
 7. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining printer tuning options.
 8. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining media size options.
 9. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining tray selection options.
 10. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining color rendering options.
 11. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining staple options.
 12. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining split sheet options.
 13. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining a bypass tray option to put cards.
 14. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining orientation options.
 15. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining cover insert options.
 16. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining color brightness options.
 17. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining toner reduction options.
 18. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining number of copies options.
 19. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining page range options.
 20. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining page order options.
 21. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining liner per inch options.
 22. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining job fonts options.
 23. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining duplex options.
 24. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining scale to fit option.
 25. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining scale to percent options.
 26. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining rotate options.
 27. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining face down option.
 28. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining glossy adjust options.
 29. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining gradation smoothing options.
 30. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining ink separation options.
 31. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining screening parameters option.
 32. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining calibration of printer options.
 33. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining calibration of monitor options.
 34. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining folding options.
 35. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining binding options.
 36. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining collating options.
 37. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining booklet options.
 38. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining slip-sheet options.
 39. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining drilling options.
 40. A software implemented method as claimed in claim 4, wherein obtaining a list of printer options comprises obtaining trimming options.
 41. A software implemented method for dynamic management of a work flow for printing documents, comprising: accessing a multiplicity of printers for printer capabilities file, said printers being part of a virtual printer group; merging said printer capabilities to create a super print capabilities file; a client sending a print command to said virtual printer group with a set of printing options; said software matching said print options from said client to said super print capabilities file of said printers in said virtual printer group; said software executing said print command; and said software checking an internal database should printer of a known printer type not respond with said printer capabilities file.
 42. A method as claimed in claim 41, further comprising said software matching said known printer type with a known Printer Postscript Definition file should the printer of said known printer type not respond with said printer capabilities file.
 43. A method as claimed in claim 41, further comprising said software checking with an administrator to use a default capabilities file should the printer of said known printer type not respond with said printer capabilities file.
 44. A software implemented method for dynamic management of work flow for printing documents comprising: accessing a multiplicity of printers for printer capabilities file, said printers being part of a virtual printer group; merging said printer capabilities to create a super print capabilities file; said client sending a print command to said virtual printer group with a set of printing options; said software matching said print options from said client to said super print capabilities file of said printers in said virtual printer group; said software executing said print command; and said software sending an electronic message to the client when printing is completed.
 45. A software implemented method as in claim 44, further comprising said software sending an electronic message to the client about a location of the printer where said printing is executed.
 46. A software implemented method as in claim 45, further comprising said software sending an electronic message to the client about any changes in job status.
 47. An apparatus for handling a plurality of print jobs from a plurality of clients, comprising: a job accessing module for accessing a multiplicity of printers have a capabilities file for each printer's capabilities file, said printers being part of a virtual printer group; a job merging module for merging said printer capabilities to create a super print capabilities file; a printer manager for sending print commands to said virtual printer group with a set of printing options; and a matching module for matching said print options to said super print capabilities file of said printers in said virtual printer group; wherein one or more printers in said virtual printer group which match said print optionsexecuting said print command. 